Многие из вас знакомы с решением VMware App Volumes, которое предназначено для распространения готовых к использованию приложений VMware ThinApp посредством подключаемых виртуальных дисков к машинам. Те из вас, кто его используют, время от времени, наверняка, сталкиваются с проблемой недостатка места на пользовательских томах Writable Volumes, которые забиваются неизвестно чем:
Напомним, что Writable Volumes - это персонализированные тома, которые принадлежат пользователям. Они хранят настройки приложений, лицензионную информацию, файлы конфигураций приложений и сами приложения, которые пользователь установил самостоятельно. Один такой диск может быть назначен только одному десктопу, но его можно перемещать между десктопами. Соответственно, такие тома могут легко заполняться, и пользователи начинают жаловаться.
Aresh Sarkari написал полезный скрипт, который выявляет заполненные тома Writable Volumes в инфраструктуре App Volumes (меньше 3 ГБ свободного места), формирует CSV-файл с данными о них и посылает его по электронной почте администратору:
####################################################################
# Get List of Writable Volumes from AppVolumes Manager for free space less than 3 GB out of 30 GB
# Author - Aresh Sarkari (@askaresh)
# Version - V2.0
####################################################################
# Run at the start of each script to import the credentials
$Credentials = IMPORT-CLIXML "C:\Scripts\Secure-Creds\SCred_avmgr.xml"
$RESTAPIUser = $Credentials.UserName
$RESTAPIPassword = $Credentials.GetNetworkCredential().Password
$body = @{
username = “$RESTAPIUser"
password = “$RESTAPIPassword”
}
Invoke-RestMethod -SessionVariable DaLogin -Method Post -Uri "https://avolmanager.askaresh.com/cv_api/sessions” -Body $body
$output = Invoke-RestMethod -WebSession $DaLogin -Method Get -Uri "https://avolmanager.askaresh.com/cv_api/writables" -ContentType "application/json"
$output.datastores.writable_volumes | Select-Object owner_name, owner_upn,total_mb, free_mb, percent_available, status | Where-Object {$_.free_mb -lt 3072} | Export-Csv -NoTypeInformation -Append D:\Aresh\Writableslt3gb.$(Get-Date -Format "yyyyMMddHHmm").csv
#send an email (provided the smtp server is reachable from where ever you are running this script)
$emailfrom = 'writablevolumes@askaresh.com'
$emailto = 'email1@askaresh.com', 'email2@askaresh.com' #Enter your SMTP Details
$emailsub = 'Wrtiable Volumes Size (free_mb) less than 3 GB out of 30 GB - 24 Hours'
$emailbody = 'Attached CSV File from App Volumes Manager. The attachment included the API response for all the Writable Volumes less than 3 GB of free space'
$emailattach = "D:\Aresh\Writableslt3gb.$(Get-Date -Format "yyyyMMddHHmm").csv"
$emailsmtp = 'smtp.askaresh.com'
Send-MailMessage -From $emailfrom -To $emailto -Subject $emailsub -Body $emailbody -Attachments $emailattach -Priority High -DeliveryNotificationOption OnFailure -SmtpServer $emailsmtp
Последняя версия сценария PowerCLI для поиска заполненных томов доступна в репозитории на GitHub. Там же, кстати, есть сценарий для поиска Writable Volumes со статусом Disabled или Orphaned.
На днях на сайте проекта VMware Labs появилась полезная администраторам vSphere штука - утилита vSphere Replication Capacity Planning, позволяющая определить реальное потребление трафика репликации виртуальными машинами и размер передаваемой дельты данных. Это позволяет планировать сетевую инфраструктуру и принимать решения о выделении канала еще до того, как вы включите репликацию для всех своих виртуальных машин.
Утилита Replication Capacity Planning показывает графики, касающиеся объема передачи сетевого трафика LWD (lightweight delta - изменения с момента последней репликации) во времени, а также метрики по размеру дельты в различных временных масштабах - часы, дни, недели и месяцы.
Также в результате работы этого средства для виртуальной машины будет показано, какой объем вычислительных ресурсов и хранилища под реплики вам потребуется на целевой площадке (без учета актуальной политики хранилищ там):
Решение vSphere Replication Capacity Planning развертывается как виртуальный модуль (Virtual Appliance), для его работы потребуется VMware ESXi 6.0 или более поздней версии. Скачать его можно по этой ссылке. Документация доступна здесь.
Как все уже знают, VMware vSphere 7 вышла, доступна для скачивания и уже обкатывается многими администраторами виртуальных инфраструктур. Для тех, кто еще не знает, поддерживает ли текущее оборудование новый гипервизор ESXi 7, Florian Grehl сделал специальный сценарий PowerCLI, который позволяет вывести эту информацию для серверов кластера:
Сценарий доступен в репозитории на GitHub. Скрипт автоматически загружает функцию HCL-Check (из GitHub), а также JSON-файл для VMware HCL. В переменной $scope можно установить серверы, которые будут проверены (по умолчанию проверяется все окружение vCenter).
Надо понимать, что если ваш хост не поддерживается для VMware ESXi 7, то имеет смысл проверить его еще раз на всякий случай в реальном VMware HCL.
Если вы получаете вот такое сообщение об ошибке:
.\check_esxi_70_support.ps1 : File .\check_esxi_70_support.ps1 cannot be loaded. The file is not digitally signed. You cannot run this script on the current system. For more information about running scripts and setting execution policy, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.
Значит нужно в свойствах скрипта разблокировать его:
На сайте проекта VMware Labs очередное обновление - вышел апдейт VMware OS Optimization Tool
b1150. Напомним, что это средство предназначено для подготовки гостевых ОС к развертыванию и проведению тюнинга реестра в целях оптимизации производительности, а также отключения ненужных сервисов и запланированных задач. О прошлой версии этой утилиты b1140 мы писали вот тут.
Давайте посмотрим, что нового есть в апрельском апдейте OS Optimization Tool:
Появилась поддержка Windows 10 version 2004 (добавлено во встроенный шаблон Windows 10 1809 – XXXX-Server 2019).
Добавлено множество оптимизаций для Windows 10 и Windows Server.
Новые настройки для приложений:
Office 2013/2016/2019:
Отключить стартовый экран
Отключить анимации
Отключить аппаратное ускорение
Internet Explorer 11 и браузер Edge:
Возможность добавить пустую домашнюю страницу
Не показывать мастер первого запуска
Отключить аппаратное ускорение
Adobe Reader 11 и DC
Отключить аппаратное ускорение
Множество дополнительных мелких оптимизаций
Несколько новых оптимизаций для служб Windows и запланированных задач, уменьшающих время инициализации ОС и увеличивающих производительность.
Несколько кнопок было переименовано и реорганизовано, чтобы лучше отражать суть того, что они делают.
Улучшения структуры файла ответов Sysprep.
Новые настройки для задач во время операции Generalize.
Автоматизация использования утилиты SDelete для обнуления блоков на диске (полезно при клонировании диска).
Создание локальных групповых политик для компьютера и пользователя, которые можно посмотреть с помощью утилит RSOP и GPEdit.
Поддержка командной строки для шага Generalize.
Finalize можно запускать без указания шаблона.
Удалены устаревшие шаблоны для Horizon Cloud и App Volumes.
Некоторое время назад мы писали о новых возможностях платформы виртуализации VMware vSphere 7, среди которых мы вкратце рассказывали о нововведениях механизма динамического распределения нагрузки на хосты VMware DRS. Давайте взглянем сегодня на эти новшества несколько подробнее.
Механизм DRS был полностью переписан, так как его основы закладывались достаточно давно. Раньше DRS был сфокусирован на выравнивании нагрузки на уровне всего кластера хостов ESXi в целом, то есть бралась в расчет загрузка аппаратных ресурсов каждого из серверов ESXi, на основании которой рассчитывались рекомендации по миграциям vMotion виртуальных машин:
При этом раньше DRS запускался каждые 5 минут. Теперь же этот механизм запускается каждую минуту, а для генерации рекомендаций используется механизм VM DRS Score (он же VM Hapiness). Это композитная метрика, которая формируется из 10-15 главных метрик машин. Основные метрики из этого числа - Host CPU Cache Cost, VM CPU Ready Time, VM Memory Swapped и Workload Burstiness. Расчеты по памяти теперь основываются на Granted Memory вместо стандартного отклонения по кластеру.
Мы уже рассказывали, что в настоящее время пользователи стараются не допускать переподписку по памяти для виртуальных машин на хостах (Memory Overcommit), поэтому вместо "Active Memory" DRS 2.0 использует параметр "Granted Memory".
VM Happiness - это основной KPI, которым руководствуется DRS 2.0 при проведении миграций (то есть главная цель всей цепочки миграций - это улучшить этот показатель). Также эту оценку можно увидеть и в интерфейсе:
Как видно из картинки, DRS Score квантуется на 5 уровней, к каждому из которых относится определенное количество ВМ в кластере. Соответственно, цель механизма балансировки нагрузки - это увеличить Cluster DRS Score как агрегированный показатель на уровне всего кластера VMware HA / DRS.
Кстати, на DRS Score влияют не только метрики, касающиеся производительности. Например, на него могут влиять и метрики по заполненности хранилищ, привязанных к хостам ESXi в кластере.
Надо понимать, что новый DRS позволяет не только выровнять нагрузку, но и защитить отдельные хосты ESXi от внезапных всплесков нагрузки, которые могут привести виртуальные машины к проседанию по производительности. Поэтому главная цель - это держать на высоком уровне Cluster DRS Score и не иметь виртуальных машин с низким VM Hapiness (0-20%):
Таким образом, фокус DRS смещается с уровня хостов ESXi на уровень рабочих нагрузок в виртуальных машинах, что гораздо ближе к требованиям реального мира с точки зрения уровня обслуживания пользователей.
Если вы нажмете на опцию View all VMs в представлении summary DRS view, то сможете получить детальную информацию о DRS Score каждой из виртуальных машин, а также другие важные метрики:
Ну и, конечно же, на улучшение общего DRS Score повлияет увеличения числа хостов ESXi в кластере и разгрузка его ресурсов.
Кстати, ниже приведен небольшой обзор работы в интерфейсе нового DRS:
Еще одной важной возможностью нового DRS является функция Assignable Hardware. Многие виртуальные машины требуют некоторые аппаратные возможности для поддержания определенного уровня производительности, например, устройств PCIe с поддержкой Dynamic DirectPath I/O или NVIDIA vGPU. В этом случае теперь DRS позволяет назначить профили с поддержкой данных функций для первоначального размещения виртуальных машин в кластере.
В видео ниже описано более подробно, как это работает:
Ну и надо отметить, что теперь появился механизм Scaleable Shares, который позволяет лучше выделять Shares в пуле ресурсов с точки зрения их балансировки. Если раньше высокий назначенный уровень Shares пула не гарантировал, что виртуальные машины этого пула получат больший объем ресурсов на практике, то теперь это может использоваться именно для честного распределения нагрузки между пулами.
Этот механизм будет очень важным для таких решений, как vSphere with Kubernetes и vSphere Pod Service, чтобы определенный ярус нагрузок мог получать необходимый уровень ресурсов. Более подробно об этом рассказано в видео ниже:
В блоге VMware vSphere появилась интересная запись о том, как происходит работа с памятью в гипервизоре VMware ESXi. Приведем ее основные моменты ниже.
Работа виртуальной машины и ее приложений с памятью (RAM) идет через виртуальную память (Virtual Memory), которая транслируется в физическую память сервера (Physical Memory). Память разбита на страницы - это такие блоки, которыми виртуальная память отображается на физическую. Размер этого блока у разных систем бывает разный, но для ESXi стандартный размер страниц равен 4 КБ, а больших страниц - 2 МБ.
Для трансляции виртуальных адресов в физические используется таблица страниц (Page Table), содержащая записи PTE (Page Table Entries):
Записи PTE хранят в себе ссылки на реальные физические адреса и некоторые параметры страницы памяти (подробнее можно почитать здесь). Структуры записей PTE могут быть разного размера - это WORD (16 bits/2 bytes), DWORD (32 bits/4 bytes) и QWORD (64 bits/8 bytes). Они адресуют большие блоки адресов в физической памяти, к примеру, DWORD адресует блок адресов 4 килобайта (например, адреса от 4096 до 8191).
Память читается и передается гостевой системе и приложениям страницами по 4 КБ или 2 МБ - это позволяет читать содержимое ячеек памяти блоками, что существенно ускоряет быстродействие. Естественно, что при таком подходе есть фрагментация памяти - редко когда требуется записать целое число страниц, и часть памяти остается неиспользуемой. При увеличении размера страницы растет и их фрагментация, но увеличивается быстродействие.
Таблицы страниц (а их может быть несколько) управляются программным или аппаратным компонентом Memory Management Unit (MMU). В случае аппаратного MMU гипервизор передает функции по управлению трансляцией ему, а программный MMU реализован на уровне VMM (Virtual Machine Monitor, часть гипервизора ESXi):
Важный компонент MMU - это буфер ассоциативной трансляции (Translation Lookaside Buffer, TLB), который представляет собой кэш для MMU. TLB всегда находится как минимум в физической памяти, а для процессоров он часто реализован на уровне самого CPU, чтобы обращение к нему было максимально быстрым. Поэтому обычно время доступа к TLB на процессоре составляет около 10 наносекунд, в то время, как доступ к физической памяти составляет примерно 100 наносекунд. VMware vSphere поддерживает Hardware MMU Offload, то есть передачу функций управления памятью на сторону MMU физического процессора.
Итак, если от виртуальной машины появился запрос на доступ к виртуальному адресу 0x00004105, то этот адрес разбивается на адрес виртуальной страницы (Virtual page number - 0x0004) и смещение (Offset - 0x105 - область внутри страницы, к которой идет обращение):
Смещение напрямую передается при доступе к физической странице памяти, а вот тэг виртуальной страницы ищется в TLB. В данном случае в TLB есть запись, что соответствующий этому тэгу адрес физической страницы это 0x0007, соответственно трансляция виртуальной страницы в физическую прошла успешно. Это называется TLB Hit, то есть попадание в кэш.
Возможна и другая ситуация - при декомпозиции виртуального адреса получаемый тэг 0x0003 отсутствует в TLB. В этом случае происходит поиск страницы в физической памяти по тэгу (страницу номер 3) и уже ее адрес транслируется (0x006). Далее запись с этим тэгом добавляется в TLB (при этом старые записи из кэша вытесняются, если он заполнен):
Надо отметить, что такая операция вызывает несколько большую задержку (так как приходится искать в глобальной памяти), и такая ситуация называется TLB Miss, то есть промах TLB.
Но это не самая плохая ситуация, так как счет latency все равно идет на наносекунды. Но доступ может быть и гораздо более долгий (миллисекунды и даже секунды) в том случае, если нужная гостевой ОС страница засвопировалась на диск.
Посмотрим на пример:
Виртуальная машина обратилась к виртуальному адресу 0x00000460, для которого есть тэг 0x0000. В физической памяти для этого тэга выделена страница 0, которая означает, что искать эту страницу нужно на диске, куда страница была сброшена ввиду недостатка физической оперативной памяти.
В этом случае страница восстанавливается с диска в оперативную память (вытесняя самую старую по времени обращения страницу), ну и далее происходит трансляция адреса к этой странице. Эта ситуация называется отказ страницы (Page Fault), что приводит к задержкам в операциях приложения, поэтому иногда полезно отслеживать Page Faults отдельных процессов, чтобы понимать причину падения быстродействия при работе с памятью.
Как некоторые из вас помнят, компания VMware в 2018 году анонсировала специальное издание vSphere Platinum, которое вышло одновременно с обновлением vSphere 6.7 Update 1. Решение vSphere Platinum стало комбинацией из двух продуктов: платформы VMware vSphere Enterprise Plus и решения VMware AppDefense. Помимо этого, в рамках издания Platinum был достпен специальный плагин для vSphere Client, который реализовывал интеграцию vSphere и AppDefense (называется он vCenter Server plugin for vSphere Platinum).
В целом, решение vSphere Platinum особо нигде не обсуждалось, и, как стало теперь понятно, никем особенно не покупалось. Поэтому VMware решила снять его с производства (End of Availability), начиная со 2 апреля 2020 года. Одновременно с vSphere Platinum в прошлое с этой даты уходят и решения VMware Cloud Foundation Platinum и VMware vCloud Suite Platinum. Компоненты решений продолжат поддерживаться в соответствии с VMware Lifecycle Product Matrix.
Существующие пользователи vSphere Platinum после объявленной даты получат лицензии vSphere Enterprise Plus, SaaS-продукт VMware AppDefense и плагин VMware AppDefense Plugin for vSphere (о том, где скачать этот плагин написано вот тут). Для пользователей vCloud Suite Platinum и Cloud Foundation Platinum ничего не меняется, за исключением эволюции самой vSphere, входящей в состав пакетов.
В конце января мы писали о средстве Power vRA Cloud, которое позволяет отобразить сложное множество программных интерфейсов VMware vRealize Automation Cloud API в простой набор функций PowerShell. На днях вышло обновление этого PowerShell-модуля - Power vRA Cloud 1.1.
Помимо множества исправлений ошибок, в утилите появилось несколько новых командлетов:
Add-vRA-Project-Administrator
Add-vRA-Project-Member
Get-vRA-DeploymentFilters
Get-vRA-DeploymentFilterTypes
Get-vRA-FabricNetworksFilter
Get-vRA-FabricImagesFilter
Remove-vRA-Project-Administrator
Remove-vRA-Project-Member
Update-vRA-Project-ZoneConfig
Напомним, что этот модуль не поддерживается со стороны VMware (как и все утилиты на VMware Labs, находящиеся в статусе Tech Preview), поэтому используйте его осторожно.
Скачать Power vRA Cloud можно по этой ссылке. Документация по использованию данного средства скачивается вместе с самим модулем.
В последнее время VMware уделяет очень много внимания средствам для работы с кластерами Kubernetes (например, посмотрите нашу статью про решения Tanzu Mission Control и Project Pacific). Как оказалось, у VMware постоянно обновляется специальная утилита Weathervane 2.0, которая позволяет производить тестирование производительности кластеров Kubernetes под нагрузкой. Напомним, что о первой версии этой утилиты мы писали два с половиной года назад.
Это средство может оказаться вам полезным в следующих случаях:
Когда нужно сравнить два кластера по производительности (например, на разном оборудовании)
Когда нужно понять влияние изменений конфигурации кластера на производительность
Когда нужно проверить корректность настройки нового кластера перед запуском его в производственную среду
Для запуска Weathervane вам нужно создать образы контейнеров, подготовить конфигурационный файл и запустить бенчмарк. Далее утилита сама развернет контейнеры в кластере, запустит приложения и соберет результаты тестирования.
Weathervane деплоит бенчмарк-приложение на узлах и подает туда нагрузку, которая генерируется через компонент Workload driver. Этот драйвер может располагаться как вместе с бенчмарк-приложением, так и во внешней среде, в отдельном кластере.
Weathervane можно установить на постоянную нагрузку для фиксированного числа симулируемых пользователей, а можно настроить на поиск максимального числа пользователей таким образом, чтобы выполнялись требования quality-of-service (QoS). В последнем случае результатом теста будет максимальное число WvUsers, которое способен выдержать кластер. Собственно, этот параметр и нужно использовать для сравнения кластеров по производительности.
Вот как выглядят компоненты решения Weathervane (компонент Run harness отвечает за исполнение тестовых прогонов и получение результатов тестирования):
Weathervane использует многоярусное веб-приложение, которое включает в себя stateless и stateful сервисы. Вы можете выбрать один из этих типов развертывания приложений. Несколько экземпляров приложений можно запускать в рамках одного прогона, что позволяет масштабировать тестирование в больших кластерах.
Приложение Weathervane состоит из нескольких ярусов. Логика приложения реализована через Java-сервисы, запущенные на сервере Tomcat, которые коммуницируют через REST API и сообщения RabbitMQ, а Zookeeper используют для координации. Бэкенд-хранилища реализованы средствами PostgreSQL и Cassandra. Фронтенд веб-серверы и прокси-кэш серверы реализованы на Nginx.
Результат для различного числа микроинстансов приложений получился таким:
Как видно из картинки, если судить по числу WvUsers, то новое железо выиграло у старого в два раза (там и ядер в процессорах больше в 2 раза, но работают они на меньшей частоте). А на эквивалентном числе пользователей производительность кластера на новом оборудовании была на 15-29% выше.
Второй тест делался на разных сетевых конфигурациях кластеров Kubernetes, которые масштабировались до 16 экземпляров приложений. В первом случае использовалась механика Flannel/VXLAN, а во втором - Flannel/host-gw, которая и выиграла у первой примерно на 10%:
Скачать утилиту VMware Weathervane 2.0 можно из репозитория на GitHub по этой ссылке.
Cody Hosterman, известный своими заметками про PowerCLI, написал интересную статью о том, как запоминать дефолтные параметры на примере свойств соединения с дисковым массивом. Это может вам оказаться полезным, например, в случае если вы работаете с дисковым массивом в интерактивном режиме, при этом не хотите каждый раз указывать параметры соединения.
К примеру, при использовании модуля PureStorage.FlashArray.VMware есть возможность передавать параметры соединения, сохраненные в глобальной переменной $Global:DefaultFlashArray. Неудобство этого метода в том, что каждый раз вы должны указывать параметр -Array:
Поэтому в PowerCLI заложен отличный механизм дефолтных параметров для нужных вам командлетов. Например, можно создать переменную с параметрами соединения с массивом:
Далее можно записать эту переменную в дефолтные параметры:
$PSDefaultParameterValues = @{
"*-pfa*:Array"=$flashArray;
}
Это позволит для параметра, называющегося Array применять параметры соединения из переменной $flashArray. При этом эти параметры будут применяться только для командлетов, содержащих "-pfa" в своем названии (они есть только в модуле PureStoragePowerShellSDK).
Для всего модуля и всех командлетов нет простого способа задать дефолтные параметры, но можно получить в сценарии список всех доступных командлетов и для всех них прописать правило использования параметра -Array:
После этого вы сможете просто использовать командлеты без параметров, например, Get-PfaVolumes, чтобы получить все тома с заданного в дефолтном соединении массива:
Аналогично способ будет работать и для всех остальных параметров командлетов и любых других модулей.
Многие пользователи платформы VMware vSphere знают, что есть такой вариант развертывания и эксплуатации распределенной виртуальной инфраструктуры как ROBO (Remote or Brunch Offices). Она подразумевает наличие одного или нескольких главных датацентров, откуда производится управление небольшими удаленными офисами, где размещено несколько серверов VMware ESXi под управлением собственного vCenter или без него.
В конце прошлого года компания VMware выпустила интересный документ "Performance of VMware vCenter Server 6.7 in Remote Offices and Branch Offices" (мы уже немного рассказывали о нем тут), где рассматривается главный аспект применения такого сценария - производительность. Ведь удаленные офисы могут располагаться в других городах, странах и даже континентах, доступ к которым осуществляется по разным типам соединений (например, 4G или спутник), поэтому очень важно, сколько трафика потребляют различные операции, и как быстро они отрабатывают с точки зрения администратора.
Параметры различных типов сетевых соединений в VMware свели в табличку (в правой колонке, что получалось в результате использования тестовой конфигурации, а в левой - как бывает в сценариях с реальными датацентрами):
Для тестирования использовалась удаленная конфигурация из 128 хостов ESXi, где было зарегистрировано 3840 виртуальных машин (960 ВМ на кластер, 30 на хост), из которых включалось до 3000 машин одновременно.
Сначала посмотрим на фоновый трафик для синхронизации хостов ESXi и vCenter, в зависимости от числа виртуальных машин на хосте (трафик в сторону vCenter):
Теперь посмотрим на трафик в обратную сторону (там просто передаются команды к хостам, ВМ не сильно затрагиваются, поэтому отличия небольшие):
Теперь посмотрим на то, как отличается объем передаваемого трафика от ESXi к vCenrer в зависимости от уровня собираемой статистики на сервере VMware vCenter:
Теперь давайте посмотрим, как отличается трафик к vCenter в зависимости от числа включенных виртуальных машин на хосте:
Посмотрим на трафик в обратную сторону (от vCenter к хостам ESXi) в зависимости от уровня статистики:
Теперь интересно посмотреть, сколько операций в минуту может выполнять vCenter с удаленными серверами ESXi в зависимости от типа соединения, а также задержки в секундах при выполнении операций:
Теперь посмотрим на задержки при выполнении отдельных операций, в зависимости от типа соединения:
Авторы документа отмечают, что больше всего на производительность операций vCenter влияет не полоса пропускания, а latency между сервером vCenter (который может быть в головном офисе) и хостами ESXi (которые могут быть на удаленной площадке).
Теперь посмотрим на сетевой трафик от хоста ESXi к серверу vCenter, который включает в себя фоновый трафик, а также собираемую статистику Level-1:
Посмотрим на такой трафик в обратную сторону - от ESXi к vCenter:
Ну а теперь посмотрим задержки на выполнение операций уже с хостами ESXi, а не с виртуальными машинами:
И в заключение, посмотрим на трафик от хостов ESXi к серверу vCenter при выполнении операций с хостами:
На Reddit коллеги заметили, что при включении технологии Turbo Boost в процессорах Intel, из виртуальной машины увеличения производительности не наблюдается. Напомним, что Turbo Boost — это технология компании Intel для автоматического увеличения тактовой частоты процессора свыше номинальной, если при этом не превышаются ограничения мощности, температуры и тока в составе расчётной мощности (TDP).
При этом емкость CPU показывается прежней, даже при создании существенной нагрузки на процессор:
В комментариях люди правильно отвечают, что поскольку Turbo Boost - это аппаратная возможность, гостевая система виртуальной машины не ловит отображение увеличения аппаратной мощности в виртуальную машину. При этом если вы посмотрите на виртуальную машину с 4 процессорами 2.4 ГГц с уровня хоста ESXi с включенным Turbo Boost до 3 ГГц, вы увидите утилизацию процессора 4*3=12 ГГц.
То есть гостевая система вполне будет использовать преимущества этой технологии, но отображать утилизацию процессора она будет в соответствии с его номинальной мощностью.
В декабре мы писали о новой версии решения VMware OS Optimization Tool, которое предназначено для подготовки гостевых ОС к развертыванию и проведению тюнинга реестра в целях оптимизации производительности, а также отключения ненужных сервисов и запланированных задач.
В январе вышла новая версия (билд b1140) этого решения. Давайте посмотрим, что в ней появилось нового:
Новая кнопка на экране результатов задач, которая позволяет сохранить страницу как HTML-файл.
Новая опция, которая упрощает задачу запуска Sysprep с использованием стандартного файла ответов. Теперь можно отредактировать файл ответов до запуска Sysprep для него.
Новая опция по автоматизации задач в рамках этапа финализации (они переехали из common options), которые запускаются как последний шаг перед тем, как Windows будет выключена, чтобы ВМ была использована в решении VMware Horizon. Она включает в себя задачи по system clean up (очистка диска, NGEN, DISM и задача Compact). Ранее эти задачи были доступны в диалоге опций командной строки. Также можно чистить лог событий, информацию о серверах KMS и отпускании IP-адреса.
Новая вкладка опций Security - она позволяет быстро выбрать наиболее частые настройки безопасности. Они относятся к Bitlocker, Firewall, Windows Defender, SmartScreen и HVCI.
Добавлен параметр командной строки -o для запуска утилиты без применения оптимизаций (например, clean up).
Изменена дефолтная настройка на "не отключать Webcache", потому что это приводило к невозможности для браузеров Edge и IE сохранять файлы.
Как знают многие администраторы решения для виртуализации и доставки настольных ПК предприятия VMware Horizon 7, при использовании графических карт NVIDIA есть возможность применять режим vSGA, обеспечивающий использование общего графического адаптера несколькими виртуальными машинами. Режим vSGA - это самый простой и эффективный способ использовать аппаратное ускорение для графики в виртуальных машинах.
Недавно в компании VMware провели тестирование производительности режима vSGA на платформе VMware Horizon 7, сравнив его с программным CPU-only, с одной стороны, и режимом GRID vGPU, с другой. Забегая вперед скажем, что конечно же vSGA показал лучшие результаты, чем CPU-only, при этом общий уровень оказался не сильно хуже, чем оптимизированный режим GRID vGPU.
Итак, давайте посмотрим на тестовую конфигурацию (тесты проводились как внутри десктопной ВМ на хосте, так и из клиента Horizon Client, расположенного на этом же хосте, чтобы убрать воздействие сетевого взаимодействия на тест):
Параметр
Значение или конфигурация
VCPUS
2
Memory
8 GB
Disk
64 GB
OS
Windows 10 Enterprise
Applications Installed
Office 2013, Chrome Browser, Adobe Reader
VDI Protocol
Blast
VRAM
96 MB
vSGA (3D Memory)
512 MB
vGPU Profile
M60-1b
VMware Horizon
Version 7.6
VDI desktop resolution
1600x1200
С точки зрения программного обеспечения, использовались следующие рабочие нагрузки:
Приложения Microsoft Office
Adobe Acrobat для открытия документов
Воспроизведение видео с YouTube
Просмотрщики CAD-файлов
Движок WebGL
Эксперимент 1
В первом эксперименте записывалось содержимое экрана пользователей (напрямую в VDI-десктопе, без использования удаленного протокола доступа) в трех конфигурациях и сравнивалось в разрезе двух основных показателей:
Отображаемое число кадров в секунду (frames per second, FPS)
Плавность картинки в десктопе vSGA в сравнении с CPU-only десктопом
Результатом первого теста для vSGA (анимация в PowerPoint) является более плавная картинка с большим числом FPS (поэтому запись с vSGA длится дольше):
Эти параметры численно нормализовали к уровню для vGPU и представили на графике (чем выше столбики, тем лучше):
Также в рамках этого эксперимента в PowerPoint запустили еще небольшое видео, чтобы наглядно продемонстрировать преимущество vSGA:
Эксперимент 2
Во время второго эксперимента в VMware запускали воспроизведение видео в PowerPoint из клиента Horizon Client. Там были проанализированы скриншоты видео, чтобы подсчитать FPS во всех трех режимах (CPU-only, vSGA и vGPU). Результаты также нормализовали к уровню vGPU:
На правом графике также показано нормализованное число артефактов, возникающих при отображении видео - в режиме CPU-only их достаточно много, и это видно невооруженным глазом.
Также в рамках эксперимента сравнили скриншоты, сделанные из видео на YouTube, напрямую в десктопе без удаленного доступа по протоколу PCoIP:
Очевидно, что в vSGA картинка более четкая. А вот при сравнении vGPU и vSGA уже нет столь явного различия:
Эксперимент 3
В этом эксперименте в десктопе просто запустили бенчмарк WebGL для трех режимов - CPU-only, vSGA и vGPU.
Тест / Режим
vSGA
CPU-only
vGPU (M60-1b)
WebGL Aquarium
40 fps
4 fps
60 fps
WebGL Unity3D
42 371
23 020
56 307
WebGL Bmark
1174
720
2079
Обратите внимание, как плохо справляется режим CPU-only с тестом Aquarium. Ну и в целом видно, что vSGA работает вполне сносно, хотя и не дотягивает до vGPU.
Выводы тестирования очевидны - используйте vSGA и vGPU, если в ваших десктопах пользователи работают с графикой. Это существенно увеличивает производительность и плавность картинки. Кстати, если вы используете vSGA, то сможете делать vMotion виртуальных машин между хостами, даже если на них стоят разные графические адаптеры, а вот для vMotion с vGPU нужно унифицировать хост-серверы в этом плане (включая одинаковые версии драйверов).
На портале VMware Labs появилась очередная новинка - PowerShell-модуль Power vRA Cloud, с помощью которого можно отобразить сложное множество программных интерфейсов VMware vRealize Automation Cloud API в простой набор функций PowerShell. Поэтому с помощью данного средства можно разрабатывать сценарии по управлению облачной инфраструктурой VMware vRealize Automation Cloud с помощью PowerShell вместо прямой работы с API.
Сразу надо сказать, что этот модуль не поддерживается со стороны VMware (как и все утилиты на VMware Labs, находящиеся в статусе Tech Preview), поэтому используйте его осторожно.
После скачивания zip-файла с VMware Labs, распакуйте его и импортируйте модуль командой:
Import-Module .\PowervRACloud.psd1
Далее можно вывести список всех доступных функций:
Get-vRACloudCommands
Для соединения с инфраструктурой vRealize Automation используйте следующую команду (формируем токен как безопасную строку):
$APIToken = Read-Host -AsSecureString
Потом передаем этот API-токен при соединении:
Connect-vRA-Cloud -APIToken $APIToken
Ну а дальше можно использовать API, например, можно вывести аккаунты vRA командой:
Компания VMware выпустила обновленное технологическое превью настольной платформы виртуализации VMware Workstation Tech Preview 20H1 (первая половина 2020 года). Это первый релиз в этом году, который, как правило, выходит в GA через 2-3 месяца после выхода превью.
Главное нововведение VMware Workstation 2020 - это возможность запускать продукт на хосте Windows 10, где включены возможности Hyper-V или Virtualization Based Security за счет использования Windows Hypervisor Platform API. Это позволит также запустить и использовать сервисы Device Guard и Credential Guard одновременно с VMware Workstation. Данная возможность была представлена еще на VMworld 2019, и вот теперь ее можно уже полноценно тестировать.
Для того, чтобы Workstation работала на Windows 10 с этими фичами, потребуется следующее:
Windows 10 20H1 из Windows insider program (минимальный билд 19041)
Intel Haswell CPU или более новый
AMD Bulldozer CPU или более новый
VMware предлагает на таких хостах потестировать пользователям включение/выключение виртуальной машины и базовые операции с ней, а также проверить запуск машин с предыдущих версий Workstation.
Скачать VMware Workstation Tech Preview 20H1 можно по этой ссылке. Также можно обсудить свой опыт работы с новой версией в специальном комьюнити. Кроме того, есть еще вот такой обзорный документ по новой версии (там есть информация об известных проблемах).
Таги: VMware, Workstation, Update, Preview, Hyper-V, Windows
В конце ноября прошлого года мы писали о постерах, посвященных решению vRealize Network Insight и его очень широким возможностям поиска. Эти возможности позволяют находить нужные сущности и объекты в инфраструктуре VMware vSphere, NSX и прочих компонентах.
Вышедший в начале января постер vRealize Network Insight Search Poster for SD-WAN & VeloCloud показывает, какие поисковые шаблоны можно использовать для платформы SD-WAN (это технология купленной компании VeloCloud, которая реализует концепцию Software-Defined Networking в рамках WAN-сетей). Как некоторые из вас помнят, интеграция с решениями VeloCloud появилась в vRNI пятой версии.
Не все администраторы виртуальной инфраструктуры VMware vSphere в курсе, что в этой платформе доступен удобный инструмент, который позволяет сгенерировать PowerCLI-сценарий из последовательности действий, которые выполняет администратор в интерфейсе vSphere Client.
Эта функция называется Code Capture, и появилась она весной прошлого года в обновлении платформы VMware vSphere 6.7 Update 2, о которой мы писали вот тут. Этот механизм VMware тестировала еще в далеком 2009 году, тогда он назывался Project Onyx.
Чтобы получить доступ к этой фиче, нужно в меню vSphere Client выбрать пункт Developer Center, где есть переключатель Enable Code Capture:
После того, как вы включите Code Capture, в верхнем тулбаре клиента появится красная кнопка записи:
Например, можно нажать на нее и, как показано на скриншоте выше, запустить клонирование виртуальной машины, а затем включить созданную ВМ.
После того, как вы запишете сессию, можно нажать кнопку Stop Recording, после чего будет сгенерирован PowerCLI-сценарий, с помощью которого можно автоматизировать развертывание новой машины:
Полученный скрипт можно скопировать или скачать для последующего его изменения уже в собственном редакторе. Надо отметить, что поскольку сценарий генерируется автоматически - он получается далеко не самым оптимальным с точки зрения структуры и времени работы. Поэтому если вы умеете разрабатывать сценарии на PowerCLI, то лучше делать их вручную с нуля. С другой стороны, не все действия в клиенте понятно, как автоматизировать, и какие командлеты использовать - поэтому Code Capture определенно может помочь подобрать нужные.
Если хочется сделать сценарий по-новой, то можно нажать кнопку "Clear and start another" - это удалит прошлый скрипт (не забудьте сохранить его, если он нужен) и начнет новую сессию записи.
Чтобы отключить функцию code capture для всех пользователей, нужно добавить строчку "codecapture.disabled=true" в файл конфигурации клиента vSphere Client (надо будет его перезапустить): /etc/vmware/vsphere-client/vsphere-client/webclient.properties.
Под конец года компания VMware выпустила очередной полезный администраторам VMware vSphere постер - VMware PowerCLI 11 Storage Module Reference Poster for vSAN. В постере приведено несколько полезных командлетов для последней версии PowerCLI, которые позволяют управлять хранилищами VMware vSAN с помощью модуля Storage.
С левой стороны перечислены все командлеты данного модуля, разбитые по группам, а справа приведены примеры использования различных команд и простых сценариев для выполнения типовых задач. Например, показано как узнать емкость датастора vSAN, установить VIB-пакет на хост vSAN или включить функцию vSAN Encryption в кластере.
Скачать постер VMware PowerCLI 11 Storage Module Reference Poster for vSAN можно по этой ссылке.
В блоге о производительности VMware появился интересный пост о том, как технология CPU Hot Add влияет на производительность операций в виртуальной машине. Как вы знаете, возможности Hot Add в VMware vSphere позволяют добавлять аппаратное обеспечение в виртуальную машину без необходимости ее выключения. В частности, CPU Hot Add позволяет добавить vCPU в запущенную ВМ таким образом, чтобы поддерживающая эту возможность гостевая ОС сразу приняла этот процессор в работу.
Между тем, согласно статье KB 2040375, функция Hot Add существенно влияет на производительность гостевой ОС, поскольку механизм горячего добавления узлов отключает функцию vNUMA. Напомним, что этот механизм включается при количестве vCPU большем 8 для одной виртуальной машины и позволяет самым оптимальным образом отображать физическую архитектуру сервера на топологию NUMA-узлов виртуальной машины (по количеству и размеру). Это приводит к тому, что CPU и память стараются взаимодействовать друг с другом в рамках одного NUMA-узла, что приводит к наименьшим задержкам при выполнении операций.
В VMware для измерения численных показателей потерь производительности при включении Hot Add решили взять бенчмарк DVD Store 3 (DS3), который используется для тестирования рабочих нагрузок в транзакционных базах данных (в частности нагрузок, например, интернет-магазинов). В качестве референсной базы данных использовалась БД размером 300 ГБ, а доступ к ней через драйвер DS3 производился из виртуальной машины с 20 vCPU и 32 ГБ RAM на борту.
Напомним, что для ВМ функции Hot Add включаются и отключаются в разделе Virtual Hardware > CPU > CPU Hot Plug, где есть чекбокс Enable CPU Hot Add.
При 28 vCPU в виртуальной машине и выключенном Hot Add консоль SQL Server Management Studio видит 2 NUMA-узла:
При включенном - только один NUMA-узел:
Далее были запущены стандартные тесты для обеих конфигураций с постепенным увеличением числа потоков для воркеров (threads), где главным критерием производительности было число операций в минуту (orders per minute, OPM). В итоге получилась вот такая картина:
Результат - включение Hot Add снизило производительность на 2-8% в зависимости от числа потоков. Поэтому включать Hot Add для виртуальной машины нужно только тогда, когда вам точно нужно именно горячее добавление vCPU или vRAM для этой ВМ.
Таги: VMware, vSphere, Hot Add, vCPU, Performance, NUMA
В сентябре этого года мы писали о новой версии пакета VMware Tools 11 для гостевых ОС виртуальных машин на платформе VMware vSphere. Одной из новых возможностей обновленной версии тулзов был читаемый с хоста параметр AppInfo для публикации информации о запущенных приложений внутри гостевой системы (по умолчанию сбор идет каждые 30 минут, это настраивается).
Недавно Вильям Ламм пояснил, как именно может работать этот механизм, который дает возможность получить данные о процессах в гостевой ОС и их свойствах.
Для начала начала надо включить Application Discovery в гостевой ОС с помощью утилиты VMwareToolbox. По умолчанию этот механизм отключен, чтобы не создавать дополнительную нагрузку на виртуальную машину.
Для включения нужно выполнить следующую команду:
Windows: VMwareToolboxCmd.exe config set appinfo enabled true
Linux: vmware-toolbox-cmd config set appinfo enabled true
Выглядит это таким образом:
После того, как сбор данных включен, они будут обновляться каждые 30 минут - то есть эта функция не предназначена для мониторинга процессов в реальном времени, а скорее для сбора информации об имеющихся в ВМ приложениях и их свойствах. Чтобы изменить интервал обновления, используйте следующие команды:
Linux: vmware-toolbox-cmd config set appinfo poll-interval <new value in seconds>
Windows: VMwareToolboxCmd.exe config set appinfo poll-interval <new value in seconds>
Например, AppInfo может собирать информацию о версии всех приложений, что может оказаться полезным при автоматизированном поиске устаревших версий приложений с помощью сценариев.
Вильям написал PowerCLI-скрипт Get-VMApplicationInfo.ps1, который принимает на вход виртуальную машину, а на выходе выдает информацию о процессах гостевой ОС с меткой времени сбора данных.
Результат работы сценария можно вывести в CSV-файл или в JSON-массив.
Ну а дальше уже можно фантазировать, для чего подобная информация может пригодиться именно в вашей виртуальной инфраструктуре.
Вильям Ламм написал интересную статью про вывод информации обо всех доступных событиях на сервере VMware vCenter. Недавно мы писали о решении vCenter Event Broker Appliance (VEBA), которое позволяет пользователям создавать сценарии автоматизации на базе событий, генерируемых в VMware vCenter Service. Например, VEBA может выполнять такие рабочие процессы, как автоматическое привязывание нужного тэга ко вновь создаваемой виртуальной машине. Работает он по модели "If This Then That".
Так вот, администраторы, использующие VEBA, часто задают вопрос о том, как найти конкретное событие vCenter и его ID в целях автоматизации операций. Также иногда это необходимо для использования с vSphere API. Для этого Вильям написал PowerCLI скрипт, который экспортирует список всех происходивших событий vCenter в CSV-файл, где в отдельных колонках приведены EventId, EventType (может быть Standard, EventEx или ExtendedEvent) и EventDescription:
Пример результатов работы данного сценария как для VMware vCenter 6.7 Update 3, так и для облачной среды VMware Cloud on AWS 1.8, можно найти в репозитории по этой ссылке: https://github.com/lamw/vcenter-event-mapping.
На скриншоте видно, что в поле Description отображается не то, что было задано в свойствах события. Это связано с тем, что за отображение этого поля отвечает другая подсистема. Чтобы это поле корректно отображалось для кастомных событий нужно зарегистрировать кастомное расширение (custom extension), которое будет публиковать информацию о событии. Более подробную информацию об ExtensionManager, с помощью которого это можно сделать, можно посмотреть вот тут.
Для большинства ИТ-специалистов виртуализация ассоциируется с накладными расходами на ее содержание. Виртуальная машина имеет такие-то потери по CPU и столько-то издержки по оперативной памяти. Но иногда бывает и обратная ситуация - например, в статье про производительность контейнеров на платформе Project Pacific утверждается, что в виртуальных машинах они работают на 8% быстрее, чем на голом железе с Linux на борту.
Давайте посмотрим, почему это может быть так.
Сначала для тестирования взяли 2 идентичных аппаратных конфигурации (кластер из двух узлов), на одной из которых развернули гипервизор ESXi на платформе Project Pacific (там Kubernetes pods работают в виртуальных машинах), а на второй поставили Linux с Kubernetes pods (видимо, подразумевается Red Hat) с настройками из коробки, которые работают нативно:
VMware объясняет высокую производительность Project Pacific тем, что гипервизор воспринимает Pods как изолированные сущности, которые можно адресовать на CPU для наиболее подходящих локальных NUMA-узлов. Планировщик ESXi уже давно умеет эффективно работать с NUMA-узлами для vCPU ВМ, поэтому вполне логично ожидать здесь хороших результатов.
При настройке Kubernetes на Linux пользователь, с точки зрения выделения ресурсов CPU, оперирует логическими ядрами, которые дает технология hyperthreading, а при настройке виртуальных машин - физическими pCPU, то есть физическими ядрами процессора. Поэтому для чистоты эксперимента в тестах производительности VMware отключала hyperthreading.
Конфигурация каждого Pod выглядела так:
Всего было развернуто 10 Kubernetes pods, каждый из которых имел лимит по ресурсам 8 CPU и 42 ГБ RAM. Далее там был запущен один из Java-бенчмарков, целевым показателем которого была полоса пропускания (maximum throughput).
Результат оказался следующим:
Из графика видно, что кластер vSphere дал на 8% лучше результаты, чем нативный кластер Kubernetes на Linux.
Чтобы понять механику процесса, VMware замерила число попаданий в local DRAM (на уровне локального NUMA-домена) по сравнению с remote DRAM при условии промаха кэша в L3 процессора.
Для ESXi число таких попаданий составило 99,2%:
Это означает, что планировщик ESXi умеет размещать процессы ВМ таким образом, чтобы они могли получать более быстрый доступ к local DRAM.
Если же использовать привязку узлов к NUMA-доменам (Numactl-based pinning) в Linux, то результат работы нативных контейнеров выглядит лучше, чем таковой в виртуальных машинах:
Между тем, такая жесткая привязка узлов Kubernetes к NUMA-узлам оказывается непрактичной, когда требуется развертывать большое количество контейнеров, и возникает большая вероятность ошибок в конфигурациях.
Поэтому из коробки получается, что контейнеры Project Pacific работают лучше, чем на Linux-платформе в контексте использования ресурсов CPU.
Таги: VMware, Kubernetes, Performance, ESXi, vSphere, CPU
Многие администраторы виртуальных инфраструктур в курсе про технологию NVMe (интерфейс Non-volatile Memory дисков SSD), которая была разработана для получения низких задержек и эффективного использования высокого параллелизма твердотельных накопителей. Такие устройства хоть и стоят дороже, но уже показывают свою эффективность за счет использования десятков тысяч очередей команд, что дает очень низкие задержки, требующиеся в таких сферах, как системы аналитики реального времени, онлайн-трейдинг и т.п.
К сожалению, протокол iSCSI (да и Fibre Channel тоже) разрабатывался тогда, когда инженеры еще не думали об архитектуре NVMe и высоком параллелизме, что привело к тому, что если использовать iSCSI для NVMe, использование таких хранилищ происходит неэффективно.
Главная причина - это одна очередь команд на одно устройство NVMe, которую может обслуживать iSCSI-протокол, весь смысл параллелизма теряется:
Вторая проблема - это то, что iSCSI использует процессор для диспетчеризации операций ввода-вывода, создавая дополнительную нагрузку на серверы, а также имеет некоторые сложности по перенаправлению потоков операций для нескольких контроллеров NVMe и устройств хранения на них.
Для этого и был придуман протокол NVMe over Fabrics (NVMe-oF), который не имеет таких ограничений, как iSCSI. Еще один его плюс - это то, что он обратно совместим с такими технологиями, как InfiniBand, RoCE и iWARP.
Компания StarWind сделала свою реализацию данного протокола для продукта StarWind Virtual SAN, чтобы организовать максимально эффективное использование пространства хранения, организованного с помощью технологии NVMe. Об этом было объявлено еще осенью прошлого года. Он поддерживает 64 тысячи очередей, в каждой из которых, в свою очередь, может быть до 64 тысяч команд (в реальной жизни в одной очереди встречается до 512 команд).
Важный момент в реализации NVMe-oF - это применение технологии RDMA, которая позволяет не использовать CPU для удаленного доступа к памяти и пропускать к хранилищу основной поток управляющих команд и команд доступа к данным напрямую, минуя процессоры серверов и ядро операционной системы.
Также RDMA позволяет маппить несколько регионов памяти на одном NVMe-контроллере одновременно и организовать прямое общение типа точка-точка между инициаторами разных хостов (несколько Name Space IDs для одного региона) и этими регионами без нагрузки на CPU.
Такой подход, реализованный в продуктах StarWind, дает потрясающие результаты в плане производительности, о которых мы писали вот в этой статье. К этой статье можно еще добавить то, что реализация инициатора NVMe-oF на базе Windows-систем и таргета на базе Linux (который можно использовать в программно-аппаратных комплексах StarWind Hyperconverged Appliances, HCA) дала накладные издержки на реализацию всего 10 микросекунд по сравнению с цифрами, заявленными в даташитах производителя NVMe-устройств. Знающие люди поймут, насколько это мало.
Еще надо отметить, что бесплатный продукт StarWind NVMe-oF initiator - это единственная программная реализация инициатора NVMe-oF на сегодняшний день. В качестве таргета можно использовать решения Intel SPDK NVMe-oF Target и Linux NVMe-oF Target, что позволяет не зависеть жестко от решений StarWind.
Подробнее о StarWind NVMe-oF initiator можно узнать вот в этой статье. А загрузить его можно по этой ссылке.
Оказывается, мы не рассказывали про бесплатный, но очень интересный сервис VMware, основанный на механике продукта vRealize Operations, который предоставляет различную информацию о виртуальной инфраструктуре - vSphere Optimization Assessment (VOA).
С помощью данного сервиса можно получить представление о производительности и конфигурациях виртуальной среды для разных облачных сред в рамках единой консоли. VOA позволят представить самые важные данные в формате четырех видов отчетов:
Configuration Report - этот отчет указывает на несоответствия конфигураций на различных уровнях, таких как виртуальные машины, хосты, кластеры и виртуальные сети.
Вот пример такого отчета:
Performance Report - в этом отчете идентифицируются и локализуются проблемы, которые могут затронуть ваши приложения. Из отчета можно получить некоторую информацию о корневой причине возникших проблем с производительностью.
Пример этого отчета:
Capacity and Cost Report - отчет, который позволяет получать информацию об использовании емкостей и принимать решения о масштабировании виртуальной среды. Помимо этого, он дает информацию о необходимости высвобождения хранилищ и выдает тренды утилизации емкостей, чтобы вы не попали в ситуацию неожиданной нехватки ресурсов и падения производительности. Кроме того, в отчете содержится информация о стоимости таких операций по высвобождению ресурсов и процессов расширения инфраструктуры.
Пример этого отчета:
Analyze Events Report - тут показаны инсайты на основе сработавших алертов в вашей виртуальной инфраструктуре. Здесь фокус делается не на всех алертах, а только на тех, что требуют вашего внимания.
Пример этого отчета:
Получить доступ к сервису vSphere Optimization Assessment (VOA) могут все клиенты платных версий VMware vSphere по этой ссылке.
Большинство сценариев PowerCLI начинаются с команды Connect-VIServer. Она позволяет соединиться с нужным сервером VMware vCenter и исполнять там необходимые сценарии.
Если вы работаете только с одним сервером vCenter, то нужно лишь один раз соединиться с сервером и после этого выполнять там команды без его указания. Для удобства работы в таких окружениях разработчики обычно прописывают глобальную переменную $global:DefaultVIServer, где указывают сервер vCenter по умолчанию. Это дает возможность исполнять командлеты без указания сервера vCenter, который будет подставляться из глобальной переменной.
Если из сценария PowerCLI вы соединяетесь с несколькими серверами vCenter одновременно, то для выполнения команды на нужном vCenter, надо указать его явно:
Get-VM -Server vcenter1.domain.local
В то же время, если вы пользуетесь глобальной переменной DefaultVIServer, вы можете попасть в ситуацию, когда использование ее станет невозможным, поскольку она очищается при дисконнекте от сервера vCenter. Рассмотрим пример:
Connecting to vCenter server vcenter1.domain.local
DefaultVIServer value: vcenter1.domain.local
Connecting to vCenter server vcenter2.domain.local
DefaultVIServer value: vcenter2.domain.local
Disconnecting from vCenter server vcenter2.domain.local
DefaultVIServer value:
Get-VM : 29/11/2019 6:17:41 PM Get-VM You are not currently connected to any servers. Please connect first using a Connect cmdlet.
Мы видим, что при отключении от сервера vCenter2 произошла очистка переменной DefaultVIServer, поэтому при попытке вызвать командлет Get-VM возникла ошибка. При этом текст ошибки об отсутствии соединения вводит в заблуждение и не соответствует фактической ситуации. Ведь подключение к серверу vCenter1 осталось, просто отсутствует значение этого сервера в переменной DefaultVIServer.
Чтобы работать с несколькими серверами vCenter одновременно, в окружении PowerCLI есть режим Multiple DefaultVIServer mode, который позволяет использовать массив DefaultVIServers.
После перехода в этот режим все команды без указания параметра -Server будут исполняться на всех подключенных серверах vCenter (это надо иметь в виду), присутствующих в массиве DefaultVIServers.
Если же другие пользователи будут выполнять ваш скрипт в режиме Single connection mode, то он может исполняться некорректно или вылететь с ошибкой, поэтому явно указывайте режим Multiple DefaultVIServer mode в самом начале скрипта.
Компания VMware выпустила очередной постер (напомним, что все постеры можно найти у нас тут), посвященный продукту vRealize Network Insight (vRNI). Этот постер посвящен функциям поиска vRNI, которые позволяют находить нужные сущности и объекты в инфраструктуре NSX-T. В нем приведены примеры наиболее часто используемых поисковых запросов и шаблонов:
По своей сути поисковый движок vRNI имеет массу функций для нахождения вещей самой разной природы. Это очень важный механизм, который может помочь в поиске проблем на различных уровнях виртуального датацентра.
Также интересно посмотреть и другие постеры, посвященные решению VMware vRNI и его функциям поиска:
В сентябре этого года мы писали о том, что компания VMware сделала доступным очень полезный онлайн-ресурс ports.vmware.com, в котором администраторы могут посмотреть порты и соединения для различных продуктов, таких как vSphere, vSAN, NSX и прочих. На тот момент на сайте было представлено всего 6 продуктов. С тех пор сайт регулярно обновлялся, и теперь пользователи VMware могут вывести таблицы портов уже по 12 решениям:
vSphere
vSAN
NSX Data Center for vSphere
vRealize Network Insight
vRealize Operations Manager
vRealize Automation
vCloud Availability
vCloud Usage Meter
VMware HCX
Horizon 7
Workspace ONE Access
Site Recovery Manager
В левой части можно выбрать один или несколько продуктов, для которых будут выведены все соединения с указанием портов, протокола и назначения взаимодействий с подробным описанием (а также направление взаимодействия). Это позволит правильно настроить сетевые экраны, через которые происходит коммуникация между компонентами виртуальной инфраструктуры.
Результаты можно экспортировать в отдельный красивый PDF-документ, либо распечатать. Что удобно, в колонке Version указана версия продукта, для которой эта информация актуальна. Обратите внимание также на гиперполезную функцию поиска по результатам вывода.
Инфраструктура remote offices and branch offices (ROBO), как правило, удалена от основного датацентра компании, что вызывает влияние на сетевые характеристики, такие как полоса пропускания, задержки в сети и ошибки в доставке пакетов. На эту тему в документе есть интересная табличка:
Авторы документа отмечают, что больше всего на производительность операций vCenter влияет не полоса пропускания, а latency между сервером vCenter (который может быть в головном офисе) и хостами ESXi (которые могут быть на удаленной площадке). В случае больших задержек для прохождения команд от vCenter, время выполнения операций с виртуальными машинами также возрастает:
В общем, всем тем, кто использует виртуальную инфраструктуру в удаленных офисах и филиалах, документ рекомендуется к прочтению.
Недавно компания VMware анонсировала новую версию платформы PKS 1.6 (Pivotal Container Service), которая предназначена для управления инфраструктурой контейнеров приложений на базе Kubernetes. Напомним, что это решение является в данный момент основным, пока еще не выпущена платформа Project Pacific, которая будет интегрировать классическую виртуальную инфраструктуру ВМ и средства исполнения и оркестрации контейнеров.
Напомним, что о прошлой версии VMware PKS 1.5 мы писали вот тут, а сегодня посмотрим, что нового появилось в PKS 1.6.
Эта консоль позволяет выполнять множество задач администратора, включая управление пользователями и жизненным циклом продукта, обзор компонентов решения, настройку интеграций и многое другое. Вот, собственно, основные возможности консоли:
Развертывание
Единый установщик в виде виртуального модуля OVA для всех необходимых компонентов.
Установка на базе интерактивного мастера.
Встроенные возможности валидации, предпроверок, автозаполнение полей и прочее.
Поддержка настройки интеграции с различными решениями (VMware vRealize Operations, Wavefront, Syslog, vRealize Log Insight и Harbor).
Оперирование
Управление жизненным циклом всех компонентов VMware Enterprise PKS (апгрейды и патчинг).
Управление пользователями и настройка RBAC из графического интерфейса.
Единая точка просмотра всех компонентов Kubernetes и нижележащей инфраструктуры.
Управление изменениями конфигурации через UI и файлы YAML.
Вот как выглядит работа в консоли:
2. Интеграция с VMware Tanzu Mission Control.
На прошедшем VMworld 2019 компания VMware анонсировала Project Tanzu - единую операционную консоль для кластеров Kubernetes, которая позволит контролировать все аспекты жизненного цикла приложений. В том числе эта консоль позволит контролировать кластеры Kubernetes под управлением решения PKS в рамках нескольких облачных инфраструктур и команд разработки/DevOps.
Интеграция находится в режиме беты, но уже сейчас при создании кластеров в PKS, они автоматически добавляются в Tanzu Mission Control, и пользователи могут централизованно управлять как кластерами PKS, так и другими окружениями.
3. Поддержка Kubernetes 1.15 и Harbor 1.9.
VMware Enterprise PKS 1.6 поставляется с Kubernetes версии 1.15, который прошел тест Kubernetes conformance организации Cloud Native Computing Foundation. Kubernetes 1.15 имеет улучшения производительности, улучшения стабильности и использования кастомных ресурсов. Более подробно об этом рассказано здесь.
Также продукт теперь поддерживает релиз Harbor 1.9, где появились такие возможности, как tag retention, квоты проектов, нотификации через webhook, таргеты репликации для сервисов реестра для облачных провайдеров, политики CVE и интеграция с syslog.
4. Операционная гибкость.
VMware Enterprise PKS 1.6 дает пользователям Kubernetes использовать механизм custom resource definition (CRD) для получения статуса состояния сетевых объектов и плагина CNI в кластерах. Также он предоставляет возможность включить логирование для правила NSX-T Firewall Deny Rule, поэтому операторы будут знать когда пакеты будут сбрасываться или отклоняться. Также поддерживается несколько типов отправки событий - Telegraf, Splunk и Elasticsearch.
5. Программа телеметрии.
Эта программа позволяет текущим пользователям создавать отчеты на базе данных об использовании инфраструктуры VMware Enterprise PKS. Например, пользователи могут создавать отчеты об использовании ими ресурсов PKS во времени, коэффициенты успеха/неудач операций и их длительность, проводить аудит записей об образах контейнеров в кластерах Kubernetes и многое другое.
Более подробно о продукте VMware PKS 1.6 рассказано на этой странице, скачать его можно тут. Также о новых возможностях решения можно почитать в блоге Pivotal.